package ar.edu.uba.fi.jmit.aspecter.monitor.testUtils;

/**
 * FactoryMock que reemplaza a la Factory del proyecto Sender para tests.
 * La instancia que se devuelve se puede reemplazar de manera que se pueda usar una nueva en cada test.
 * @author Tomas
 *
 */
public class SenderFactoryMock {

	/**
	 * Instancia de SenderMock que se devuelve.
	 */
	private static SenderMock senderInstance;

	/**
	 * Limpia el Sender. Utilizar al iniciar cada nuevo test.
	 */
	public static void clean() {
		senderInstance = new SenderMock();
	}
	
	/**
	 * Establece como SenderMock de este Factory el pasado por parametro.
	 * @param senderInstance
	 */
	public static void setSenderInstance(SenderMock senderInstance) {
		SenderFactoryMock.senderInstance = senderInstance;
	}
	
	/**
	 * Devuelve el SenderMock actual.
	 * @return
	 */
	public static SenderMock getSenderInstance() {
		if(senderInstance == null) {
			senderInstance = new SenderMock();
		}
		return senderInstance;
	}

}
